kanzi::StateManager Class Reference

State manager for managing states of nodes or application. More...

#include <kanzi/core.ui/state_manager/state_manager.hpp>

Inheritance diagram for kanzi::StateManager:
kanzi::Resource kanzi::Object kanzi::MetaObject kanzi::PropertyObject

Classes

struct  EasingArguments
 Easing function arguments. More...
 
class  EnteredStateMessageArguments
 Represents message arguments of EnteredState message of state manager. More...
 
class  GoToDefinedStateMessageArguments
 Represents message arguments of GoToNextDefinedState message of state manager. More...
 
class  GoToNextDefinedStateMessageArguments
 Represents message arguments of GoToNextDefinedState message of state manager. More...
 
class  GoToPreviousDefinedStateMessageArguments
 Represents message arguments of GoToPreviousDefinedState message of state manager. More...
 
class  GoToStateMessageArguments
 Represents message arguments of GoToState message of state manager. More...
 
class  LeftStateMessageArguments
 Represents message arguments of LeftState message of state manager. More...
 
class  State
 
class  StateChangeMessageArguments
 
class  StateGroup
 
class  StateGroupRuntime
 State group runtime. More...
 
class  StateManagerMessageArguments
 Represents base message arguments of state manager messages. More...
 
class  StateObject
 
class  StateObjectRuntime
 State object runtime. More...
 
class  StateRuntime
 State runtime. More...
 
class  StateTransition
 
class  StateTransitionAnimation
 
class  TargetObject
 TargetObject. More...
 
class  TransitionFinishedMessageArguments
 Represents message arguments of TransitionFinished message of state manager. More...
 
class  TransitionMessageArguments
 
class  TransitionStartedMessageArguments
 Represents message arguments of TransitionStarted message of state manager. More...
 

Public Types

enum  AnimationMode {
  AnimationModeCustom, AnimationModeLinear, AnimationModeSmoothStep, AnimationModeStep,
  AnimationModeSmootherStep, AnimationModeBack, AnimationModeBounce, AnimationModeCircle,
  AnimationModeCubic, AnimationModeElastic, AnimationModeExponential, AnimationModePower,
  AnimationModeQuadratic, AnimationModeQuartic, AnimationModeQuintic, AnimationModeSine
}
 State manager animation mode. More...
 
enum  TransitionReturnTimeType { TransitionReturnTimeElapsed, TransitionReturnTimeFull }
 State manager transition return time calculation type. More...
 
typedef shared_ptr< StateManagerRuntimeStateManagerRuntimeSharedPtr
 
typedef weak_ptr< StateManagerRuntimeStateManagerRuntimeWeakPtr
 
typedef unique_ptr< StateGroupStateGroupPtr
 
typedef vector< StateGroupPtrStateGroupContainer
 
typedef StateGroupContainer::const_iterator StateGroupIterator
 
typedef unique_ptr< StateStatePtr
 
typedef vector< StatePtrStateContainer
 
typedef StateContainer::const_iterator StateIterator
 
typedef unique_ptr< StateTransitionStateTransitionPtr
 
typedef vector< StateTransitionPtrStateTransitionContainer
 
typedef StateTransitionContainer::const_iterator StateTransitionIterator
 
typedef unique_ptr< StateTransitionAnimationStateTransitionAnimationPtr
 
typedef vector< StateTransitionAnimationPtrStateTransitionAnimationContainer
 
typedef StateTransitionAnimationContainer::const_iterator StateTransitionAnimationIterator
 
typedef unique_ptr< StateObjectStateObjectPtr
 
typedef vector< StateObjectPtrStateObjectContainer
 
typedef StateObjectContainer::const_iterator StateObjectIterator
 
- Public Types inherited from kanzi::PropertyObject
typedef intrusive_ptr< AbstractPropertyTypeDescriptor::PropertyStoragePropertyStoragePtr
 
typedef vector< PropertyStoragePtrPropertyStorageContainer
 
typedef PropertyStorageContainer::iterator PropertyStorageIterator
 
typedef PropertyStorageContainer::const_iterator PropertyStorageConstIterator
 
typedef PropertyStorageContainer::reverse_iterator PropertyStorageReverseIterator
 

Public Member Functions

 ~StateManager ()
 Destructor. More...
 
void addStateGroup (StateGroupPtr stateGroup)
 Add new state group to state manager. More...
 
StateGroupIterator beginStateGroups () const
 Returns an iterator to start of the state group container. More...
 
StateGroupIterator endStateGroups () const
 Returns an iterator to end of the state group container. More...
 
StateManagerRuntimeSharedPtr attach (StateManagerSharedPtr stateManager, Node &objectNode)
 Attach a state manager runtime. More...
 
virtual void loadFromKZB (const ResourceLoaderThreadContext *threadContext, KzcInputStream *inputStream, const KzuBinaryFileInfo *file) KZ_OVERRIDE
 Load a state manager from kzb. More...
 
virtual ~StateManagerRuntime ()
 Destructor. More...
 
void detach ()
 Detach state manager runtime. More...
 
- Public Member Functions inherited from kanzi::Resource
KzcMemoryManagergetMemoryManager () const
 
 Resource (Domain *domain, string_view name)
 
virtual ~Resource ()
 
virtual void unloadOverride ()
 Unload function for resource. Releases all CPU memory taken by the resource except the resource loader. More...
 
virtual unsigned int getCPUMemoryUsage () const
 Function for getting the memory usage of a resource. More...
 
void setKZB (const KzuBinaryDirectory *binaryDirectory, string_view path)
 Set the binary directory and path of the resource. More...
 
const string & getName () const
 Gets the resource name. More...
 
const string & getUrl () const
 Gets the resource URL. More...
 
void setUrl (string_view url)
 Sets the resource URL. More...
 
void setNotLoaded ()
 
bool isFromKZB () const
 
void reload ()
 
void reloadFromKzb (KzcInputStream *inputStream, const KzuBinaryFileInfo *file)
 
void reloadFromKzb (KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser)
 
void reloadFromFile (string_view filePath)
 
void load ()
 
void unload ()
 
bool isLoaded () const
 
void kzuResourceLoad_private (const ResourceLoaderThreadContext *threadContext)
 Private function for kzuResourceLoad() with specified thread context. More...
 
void kzuResourceFinishLoading_private (const ResourceLoaderThreadContext *threadContext)
 Private function for finishing the loading of the resource. More...
 
bool isKeepAlive () const
 Tells if the resource has keep alive flag set. More...
 
void setKeepAlive (bool keepAlive)
 Sets the keep alive flag. More...
 
- Public Member Functions inherited from kanzi::Object
 Object (Domain *domain)
 
virtual ~Object ()
 
DomaingetDomain () const
 Returns the domain the object belongs to. More...
 
KzuTaskSchedulergetTaskScheduler () const
 Returns the task scheduler of the object. More...
 
KzuMessageDispatchergetMessageDispatcher () const
 Returns the message dispatcher of the object. More...
 
ResourceManagergetResourceManager () const
 Returns the resource manager of the object. More...
 
virtual const MetaclassgetDynamicMetaclass () const KZ_OVERRIDE
 Returns the metaclass of the dynamic type of the object. More...
 
AppliedStyleEntrySharedPtr applyObjectStyle (kanzi::StyleSharedPtr style)
 Applies a style to an object. More...
 
void unapplyObjectStyle (AppliedStyleEntrySharedPtr appliedStyleEntry)
 
void applyObjectStyles ()
 Apply all styles for an object node. More...
 
void unapplyObjectStyles ()
 Unapplies and removes all applied styles. More...
 
- Public Member Functions inherited from kanzi::MetaObject
virtual ~MetaObject ()
 
bool isTypeOf (const Metaclass *objectType) const
 Determines if the type of this object is the given type or derived from it. More...
 
- Public Member Functions inherited from kanzi::PropertyObject
 PropertyObject ()
 
virtual ~PropertyObject ()
 
template<typename DataType >
void setProperty (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Traits::ParameterType value)
 Sets the local value of a property. More...
 
void removeKzbProperties ()
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getProperty (const PropertyType< DataType > &propertyType) const
 Returns the current value of a property. More...
 
template<typename DataType >
optional< typename PropertyType< DataType >::Traits::ReturnType > getOptionalProperty (const PropertyType< DataType > &propertyType) const
 Evaluates the property value in the same way as the overload above but does not default to the value in property metadata if there are no inputs to the property value. More...
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getPropertyBase (const PropertyType< DataType > &propertyType) const
 Returns the current value of a property disregarding modifiers. More...
 
template<typename DataType >
void setAbstractProperty (AbstractPropertyType abstractPropertyType, typename PropertyType< DataType >::Traits::ParameterType value)
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getAbstractProperty (AbstractPropertyType abstractPropertyType) const
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getAbstractPropertyBase (AbstractPropertyType abstractPropertyType) const
 
template<typename DataType >
optional< typename PropertyType< DataType >::Traits::ReturnType > getOptionalAbstractProperty (AbstractPropertyType abstractPropertyType) const
 
void setPropertyFlag (AbstractPropertyType propertyType, uint32_t flag)
 
bool isPropertyFlagSet (AbstractPropertyType propertyType, uint32_t flag) const
 
void clearPropertyFlag (AbstractPropertyType propertyType, uint32_t flag)
 
bool hasValue (AbstractPropertyType propertyType) const
 Evaluates whether there are any inputs into the property value. More...
 
bool hasBaseValue (AbstractPropertyType propertyType) const
 Evaluates whether there are any inputs into the property value, disregarding modifiers. More...
 
bool hasLocalValue (AbstractPropertyType propertyType) const
 Evaluates whether there is a local value set for the property. More...
 
bool hasNonClassValue (AbstractPropertyType propertyType) const
 Evaluates whether there is a value of any precedence higher than class default value set for the property. More...
 
void removeLocalValue (AbstractPropertyType propertyType)
 Removes the local value associated with the property. More...
 
void copyLocalValue (const PropertyObject &other, AbstractPropertyType propertyType)
 Copies local value of single property from another object. More...
 
void copyLocalValues (const PropertyObject &other)
 Copies all local values from another object. More...
 
virtual void onPropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason)
 Virtual function to handle property change notifications. More...
 
template<typename DataType >
void addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, void *owner)
 
template<typename DataType >
void removePropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *owner)
 
template<typename DataType >
void addPropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner)
 
template<typename DataType >
void removePropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner)
 
void validatePropertyModifiers (AbstractPropertyType propertyType)
 
template<typename DataType >
void addPropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner)
 
template<typename DataType >
void removePropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner)
 
template<typename DataType >
size_t getPropertyNotificationHandlerCount (const PropertyType< DataType > &propertyType)
 Gets number of current notification handlers for given property type. More...
 

Static Public Member Functions

static StateManagerSharedPtr create (Domain *domain, string_view name)
 Create a state manager. More...
 
static StateManagercreateEmpty (Domain *domain, string_view name)
 Create an empty state manager. More...
 
static void goToState (Node *objectNode, string_view stateGroupName, string_view stateName, bool immediate)
 Attempt to go to a state. More...
 
static void goToState (Node *objectNode, string_view stateName, bool immediate)
 Attempt to go to a state. More...
 
static StatePtr loadStateFromKZB (KzcInputStream *inputStream, Domain *domain, const KzuBinaryFileInfo *file, bool hasControlType)
 
static StateObjectPtr loadStateObjectFromKZB (KzcInputStream *inputStream, Domain *domain, const KzuBinaryFileInfo *file)
 
static StateTransitionPtr loadTransitionFromKZB (KzcInputStream *inputStream, Domain *domain, const KzuBinaryFileInfo *file)
 
static StateTransitionAnimationPtr loadTransitionAnimationFromKZB (KzcInputStream *inputStream, Domain *domain, const KzuBinaryFileInfo *file)
 
static StateManagerSharedPtr loadFromKZB (Domain *domain, string_view name, KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser)
 Loads state manager from KZB and returns it. More...
 
static StateManagerRuntimeSharedPtr create (StateManagerSharedPtr stateManager, Domain *domain, const StateGroupContainer &groups, Node &objectNode)
 Constructor. More...
 
- Static Public Member Functions inherited from kanzi::Object
static const MetaclassgetStaticMetaclass ()
 Returns the metaclass of Object class. More...
 
static PropertyTypeEditorInfoSharedPtr makeEditorInfo ()
 Default implementation that returns empty editor info. More...
 
- Static Public Member Functions inherited from kanzi::MetaObject
static const MetaclassgetStaticMetaclass ()
 Returns the metaclass of Object class. More...
 
static PropertyTypeEditorInfoSharedPtr makeEditorInfo ()
 Default implementation that returns empty editor info. More...
 

Public Attributes

Domainm_domain
 
Nodem_objectNode
 
StateGroupRuntimeContainer m_groupRuntimes
 
StateManagerWeakPtr m_stateManager
 

Static Public Attributes

static PropertyType< bool > LongestPathProperty
 LongestPath property. More...
 
static MessageType< GoToStateMessageArgumentsGoToStateMessage
 
static MessageType< GoToNextDefinedStateMessageArgumentsGoToNextDefinedStateMessage
 
static MessageType< GoToPreviousDefinedStateMessageArgumentsGoToPreviousDefinedStateMessage
 
static MessageType< EnteredStateMessageArgumentsEnteredStateMessage
 
static MessageType< LeftStateMessageArgumentsLeftStateMessage
 
static MessageType< TransitionStartedMessageArgumentsTransitionStartedMessage
 
static MessageType< TransitionFinishedMessageArgumentsTransitionFinishedMessage
 

Protected Types

typedef shared_ptr< StateGroupRuntimeStateGroupRuntimeSharedPtr
 
typedef shared_ptr< StateRuntimeStateRuntimeSharedPtr
 
typedef shared_ptr< StateObjectRuntimeStateObjectRuntimeSharedPtr
 
typedef shared_ptr< TargetObjectTargetObjectSharedPtr
 
typedef weak_ptr< StateObjectRuntimeStateObjectRuntimeWeakPtr
 
typedef weak_ptr< TargetObjectTargetObjectWeakPtr
 
typedef vector< StateGroupRuntimeSharedPtrStateGroupRuntimeContainer
 
typedef StateGroupRuntimeContainer::const_iterator StateGroupRuntimeIterator
 
typedef vector< StateRuntimeSharedPtrStateRuntimeContainer
 
typedef StateRuntimeContainer::const_iterator StateRuntimeIterator
 
typedef vector< StateObjectRuntimeSharedPtrStateObjectRuntimeContainer
 
typedef StateObjectRuntimeContainer::iterator StateObjectRuntimeIterator
 
typedef shared_ptr< TargetObjectTargetObjectSharedPtr
 
typedef vector< TargetObjectSharedPtrTargetObjectVector
 
- Protected Types inherited from kanzi::Object
typedef vector< AppliedStyleEntrySharedPtrAppliedStyleContainer
 Applied style container. More...
 

Protected Member Functions

 StateManager (Domain *domain, string_view name)
 
void cleanup ()
 Cleanup state manager internals. More...
 
 StateManagerRuntime (StateManagerSharedPtr stateManager, Domain *domain, Node &objectNode)
 Constructor. More...
 
void removeHandlers ()
 Remove handlers from state manager runtime. More...
 
void unapplyStyles ()
 Unapply and delete styles recursively. More...
 
void stopTransitions ()
 Stop transitions recursively. More...
 
void releaseTargetObjects ()
 Stops tracking target objects. More...
 
void captureTargetObjects ()
 Starts tracking target objects. More...
 
- Protected Member Functions inherited from kanzi::Resource
virtual void reloadOverride ()
 
virtual void reloadFromKzbOverride (KzcInputStream *inputStream, const KzuBinaryFileInfo *file)
 
virtual void reloadFromKzbOverride (KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser)
 
virtual void reloadFromFileOverride (string_view filePath)
 
virtual unsigned int getCPUMemoryUsageOverride () const
 
- Protected Member Functions inherited from kanzi::Object
void initialize ()
 
void onCopy (const Object &other)
 
- Protected Member Functions inherited from kanzi::MetaObject
 MetaObject ()
 
void initialize ()
 
- Protected Member Functions inherited from kanzi::PropertyObject
void addPropertyValueSource (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::ValueSource *valueSource, PropertyValuePrecedence precedence, void *owner)
 
void removePropertyValueSource (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::ValueSource *valueSource, void *owner)
 
AbstractPropertyTypeDescriptor::ValueSourceEntrygetTopValueSourceEntry (AbstractPropertyTypeDescriptor::PropertyStorage &propertyStorage) const
 
AbstractPropertyTypeDescriptor::ValueSourceEntrygetTopValueSourceEntry (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourcegetTopValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourcegetFinalValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourcegetNonClassValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourcegetClassValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourceEntryfindLocalValueSourceEntry (AbstractPropertyTypeDescriptor::PropertyStorage &propertyStorage)
 
AbstractPropertyTypeDescriptor::ValueSourceEntryconstructLocalValueSourceEntry (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::PropertyStorage &propertyStorage)
 
AbstractPropertyTypeDescriptor::ValueSourceEntryacquireLocalValueSourceEntry (AbstractPropertyTypeDescriptor &descriptor)
 
AbstractPropertyTypeDescriptor::PropertyStoragefindPropertyStorage (AbstractPropertyTypeDescriptor &descriptor) const
 
PropertyStoragePtr findPropertyStoragePtr (AbstractPropertyTypeDescriptor &descriptor) const
 Gets property storage intrusive pointer that can be used to hold a reference until end of operation. More...
 
PropertyStoragePtr constructPropertyStorage (AbstractPropertyTypeDescriptor &descriptor)
 
PropertyStoragePtr acquirePropertyStorage (AbstractPropertyTypeDescriptor &descriptor)
 
AbstractPropertyTypeDescriptor::ModifierStorageacquireModifierStorage (AbstractPropertyTypeDescriptor &descriptor)
 
AbstractPropertyTypeDescriptor::ModifierStoragefindModifierStorage (AbstractPropertyTypeDescriptor &descriptor)
 
AbstractPropertyTypeDescriptor::NotificationStorageacquireNotificationStorage (AbstractPropertyTypeDescriptor &descriptor)
 
AbstractPropertyTypeDescriptor::NotificationStoragefindNotificationStorage (AbstractPropertyTypeDescriptor &descriptor)
 
AbstractPropertyTypeDescriptorfindPropertyTypeDescriptorByUnqualifiedNameAndDataType (string_view unqualifiedName, PropertyDataType dataType)
 
void validatePropertyModifiersAndNotifyHandlers (PropertyStoragePtr &propertyStorage)
 
void copyLocalValue (const AbstractPropertyTypeDescriptor::PropertyStorage &propertyStorage)
 Copy local value from property storage. More...
 
PropertyStorageContainer::iterator beginPropertyStorage ()
 
PropertyStorageContainer::iterator endPropertyStorage ()
 
virtual void notifyPropertyHandlers (PropertyStoragePtr &propertyStorage, PropertyNotificationReason reason)
 
void onCopy (const PropertyObject &other)
 

Static Protected Member Functions

static PropertyTypeEditorInfoSharedPtr makeEditorInfo ()
 
static void goToStateHandler (StateManagerRuntime &stateManagerRuntime, GoToStateMessageArguments &goToStateMessage)
 Go to state message handler. More...
 
static void goToNextDefinedState (StateManagerRuntime &stateManagerRuntime, GoToNextDefinedStateMessageArguments &goToNextDefinedStateMessage)
 Go to next defined state message handler. More...
 
static void goToPreviousDefinedState (StateManagerRuntime &stateManagerRuntime, GoToPreviousDefinedStateMessageArguments &goToPreviousDefinedStateMessage)
 Go to previous defined state message handler. More...
 

Protected Attributes

StateGroupContainer m_groups
 
TargetObjectVector m_targetObjects
 Collection of target objects. More...
 
Node::MessageSubscriptionToken m_goToStateMessageSubscription
 Subscription to StateManagerGoToState messages. More...
 
Node::MessageSubscriptionToken m_goToNextDefinedStateMessageSubscription
 Subscription to StateManagerGoToNextDefinedState messages. More...
 
Node::MessageSubscriptionToken m_goToPreviousDefinedStateMessageSubscription
 Subscription to StateManagerGoToPreviousDefinedState messages. More...
 
- Protected Attributes inherited from kanzi::Object
AppliedStyleContainer m_appliedStyles
 Listing of applied styles applied to this object. More...
 

Detailed Description

State manager for managing states of nodes or application.

Member Typedef Documentation

typedef StateGroupContainer::const_iterator kanzi::StateManager::StateGroupIterator
typedef unique_ptr<State> kanzi::StateManager::StatePtr
typedef StateContainer::const_iterator kanzi::StateManager::StateIterator
typedef StateTransitionContainer::const_iterator kanzi::StateManager::StateTransitionIterator
typedef StateTransitionAnimationContainer::const_iterator kanzi::StateManager::StateTransitionAnimationIterator
typedef StateObjectContainer::const_iterator kanzi::StateManager::StateObjectIterator
typedef StateGroupRuntimeContainer::const_iterator kanzi::StateManager::StateGroupRuntimeIterator
protected
typedef StateRuntimeContainer::const_iterator kanzi::StateManager::StateRuntimeIterator
protected
typedef StateObjectRuntimeContainer::iterator kanzi::StateManager::StateObjectRuntimeIterator
protected

Member Enumeration Documentation

State manager animation mode.

Enumerator
AnimationModeCustom 
AnimationModeLinear 
AnimationModeSmoothStep 
AnimationModeStep 
AnimationModeSmootherStep 
AnimationModeBack 
AnimationModeBounce 
AnimationModeCircle 
AnimationModeCubic 
AnimationModeElastic 
AnimationModeExponential 
AnimationModePower 
AnimationModeQuadratic 
AnimationModeQuartic 
AnimationModeQuintic 
AnimationModeSine 

State manager transition return time calculation type.

Enumerator
TransitionReturnTimeElapsed 

Play only elapsed time.

TransitionReturnTimeFull 

Always play full time.

Constructor & Destructor Documentation

kanzi::StateManager::~StateManager ( )
inline

Destructor.

kanzi::StateManager::StateManager ( Domain domain,
string_view  name 
)
inlineexplicitprotected
virtual kanzi::StateManager::~StateManagerRuntime ( )
virtual

Destructor.

Member Function Documentation

static StateManagerSharedPtr kanzi::StateManager::create ( Domain domain,
string_view  name 
)
static

Create a state manager.

static StateManager* kanzi::StateManager::createEmpty ( Domain domain,
string_view  name 
)
static

Create an empty state manager.

void kanzi::StateManager::addStateGroup ( StateGroupPtr  stateGroup)

Add new state group to state manager.

StateGroupIterator kanzi::StateManager::beginStateGroups ( ) const
inline

Returns an iterator to start of the state group container.

Returns
Iterator at the beginning of the container.
StateGroupIterator kanzi::StateManager::endStateGroups ( ) const
inline

Returns an iterator to end of the state group container.

Returns
Iterator at the end of the container.
StateManagerRuntimeSharedPtr kanzi::StateManager::attach ( StateManagerSharedPtr  stateManager,
Node objectNode 
)

Attach a state manager runtime.

Parameters
stateManagerShared pointer to this state manager.
objectNodeObject node to attach to.
static void kanzi::StateManager::goToState ( Node objectNode,
string_view  stateGroupName,
string_view  stateName,
bool  immediate 
)
static

Attempt to go to a state.

Parameters
objectNodeNode to post the message on.
stateGroupNameName of the state group to do the transition in.
stateNameName of the state to transition to.
immediateTrue to omit transition animations.
static void kanzi::StateManager::goToState ( Node objectNode,
string_view  stateName,
bool  immediate 
)
static

Attempt to go to a state.

If state manager attached to node has multiple state groups with the same name, it is not clearly defined which state is selected.

Parameters
objectNodeNode to post the message on.
stateNameName of the state to transition to.
immediateTrue to omit transition animations.
virtual void kanzi::StateManager::loadFromKZB ( const ResourceLoaderThreadContext threadContext,
KzcInputStream inputStream,
const KzuBinaryFileInfo file 
)
virtual

Load a state manager from kzb.

Reimplemented from kanzi::Resource.

static StatePtr kanzi::StateManager::loadStateFromKZB ( KzcInputStream inputStream,
Domain domain,
const KzuBinaryFileInfo file,
bool  hasControlType 
)
static
static StateObjectPtr kanzi::StateManager::loadStateObjectFromKZB ( KzcInputStream inputStream,
Domain domain,
const KzuBinaryFileInfo file 
)
static
static StateTransitionPtr kanzi::StateManager::loadTransitionFromKZB ( KzcInputStream inputStream,
Domain domain,
const KzuBinaryFileInfo file 
)
static
static StateTransitionAnimationPtr kanzi::StateManager::loadTransitionAnimationFromKZB ( KzcInputStream inputStream,
Domain domain,
const KzuBinaryFileInfo file 
)
static
static StateManagerSharedPtr kanzi::StateManager::loadFromKZB ( Domain domain,
string_view  name,
KzbFile kzbFile,
ReadOnlyMemoryFile file,
KzbMemoryParser parser 
)
static

Loads state manager from KZB and returns it.

Parameters
domainDomain.
nameName of state manager.
kzbFileKZB to read state manager from.
fileFile entry in KZB which contains state manager data.
parserParser to parse state manager data.
Returns
Loaded state manager.
static PropertyTypeEditorInfoSharedPtr kanzi::StateManager::makeEditorInfo ( )
staticprotected
void kanzi::StateManager::cleanup ( )
protected

Cleanup state manager internals.

static void kanzi::StateManager::goToStateHandler ( StateManagerRuntime stateManagerRuntime,
GoToStateMessageArguments goToStateMessage 
)
staticprotected

Go to state message handler.

static void kanzi::StateManager::goToNextDefinedState ( StateManagerRuntime stateManagerRuntime,
GoToNextDefinedStateMessageArguments goToNextDefinedStateMessage 
)
staticprotected

Go to next defined state message handler.

static void kanzi::StateManager::goToPreviousDefinedState ( StateManagerRuntime stateManagerRuntime,
GoToPreviousDefinedStateMessageArguments goToPreviousDefinedStateMessage 
)
staticprotected

Go to previous defined state message handler.

static StateManagerRuntimeSharedPtr kanzi::StateManager::create ( StateManagerSharedPtr  stateManager,
Domain domain,
const StateGroupContainer groups,
Node objectNode 
)
static

Constructor.

Parameters
stateManagerState manager this runtime is using.
domainDomain.
groupsList of state groups in state manager.
objectNodeNode owning the state manager.
void kanzi::StateManager::detach ( )

Detach state manager runtime.

kanzi::StateManager::StateManagerRuntime ( StateManagerSharedPtr  stateManager,
Domain domain,
Node objectNode 
)
inlineexplicitprotected

Constructor.

Parameters
stateManagerState manager this runtime is using.
domainDomain.
objectNodeNode owning the state manager.
void kanzi::StateManager::removeHandlers ( )
protected

Remove handlers from state manager runtime.

void kanzi::StateManager::unapplyStyles ( )
protected

Unapply and delete styles recursively.

void kanzi::StateManager::stopTransitions ( )
protected

Stop transitions recursively.

void kanzi::StateManager::releaseTargetObjects ( )
protected

Stops tracking target objects.

void kanzi::StateManager::captureTargetObjects ( )
protected

Starts tracking target objects.

Member Data Documentation

PropertyType<bool> kanzi::StateManager::LongestPathProperty
static

LongestPath property.

The default value is false.

See also
setLongestPath(), isLongestPath()
MessageType<GoToStateMessageArguments> kanzi::StateManager::GoToStateMessage
static
MessageType<GoToNextDefinedStateMessageArguments> kanzi::StateManager::GoToNextDefinedStateMessage
static
MessageType<GoToPreviousDefinedStateMessageArguments> kanzi::StateManager::GoToPreviousDefinedStateMessage
static
MessageType<EnteredStateMessageArguments> kanzi::StateManager::EnteredStateMessage
static
MessageType<LeftStateMessageArguments> kanzi::StateManager::LeftStateMessage
static
MessageType<TransitionStartedMessageArguments> kanzi::StateManager::TransitionStartedMessage
static
MessageType<TransitionFinishedMessageArguments> kanzi::StateManager::TransitionFinishedMessage
static
StateGroupContainer kanzi::StateManager::m_groups
protected
Domain* kanzi::StateManager::m_domain
Node& kanzi::StateManager::m_objectNode
StateGroupRuntimeContainer kanzi::StateManager::m_groupRuntimes
StateManagerWeakPtr kanzi::StateManager::m_stateManager
TargetObjectVector kanzi::StateManager::m_targetObjects
protected

Collection of target objects.

Node::MessageSubscriptionToken kanzi::StateManager::m_goToStateMessageSubscription
protected

Subscription to StateManagerGoToState messages.

Node::MessageSubscriptionToken kanzi::StateManager::m_goToNextDefinedStateMessageSubscription
protected

Subscription to StateManagerGoToNextDefinedState messages.

Node::MessageSubscriptionToken kanzi::StateManager::m_goToPreviousDefinedStateMessageSubscription
protected

Subscription to StateManagerGoToPreviousDefinedState messages.


The documentation for this class was generated from the following files: